<?php   // $Id: fact_delete.php 207 2008-06-06 12:26:53Z pcoustillas $ ?>
<?php
/*
Licensed under the terms of the GNU  General Public License:http://www.opensource.org/licenses/gpl-license.php
File Authors:Pierre Coustillas
*/
require_once("include/verif.php");
require_once("include/config/common.php");
require_once("include/config/var.php");
//require_once("include/language/$lang.php");


// on ne peux pas supprimer une facture si elle contient des bons. On pose la question si opendcf doit
// retirer les bons, supprimer les bon, ou ne rien faire.
//on ne peut supprimer une que si aucune autre facture plus récente existe.
// si une facture plus récente existe on pose la question de décaller la numérotation
// Dans tout les cas on affiche fact_lister.php
// Si la facture contient des bon de commandes 


$num_fact=isset($_GET['num_fact'])?$_GET['num_fact']:"";
$decal_fact=isset($_GET['decal_fact'])?$_GET['decal_fact']:"";
$msg=isset($_GET['msg'])?$_GET['msg']:"";

/*
if ($msg != "") //provient de la page fact_validation ou fact_devalidation
{
	echo "<br/><br/><br/><br/>";
	echo "<span class='grand'>$msg</grand>";
}*/


//verifier qu'in n'y a pas de bon.
$sql= "SELECT * FROM ${tblpref}bon_comm WHERE num_facture=$num_fact";
$result = mysql_query($sql) or die("Erreur comptage nombre de bon !<br/>$sql<br/>" . mysql_error());
$nb_bon = mysql_num_rows($result);

if ($nb_bon > 0)
{
	$list_bon = "";
	while ($tab_bon = mysql_fetch_array($result))
	{
		$list_bon .= $tab_bon['num_bon'] . ", ";
	}

	$msg_validation="Cette facture contient les bons n° $list_bon . Elle ne peut pas être supprimée<br/>";
	$msg_validation.="Souhaitez vous : <br/>";
	$msg_validation.="<a href='fact_delete_suite.php?num_fact=$num_fact&action=retire'>Retirer ces bons de la facture.</a><br/><br/>";
	$msg_validation.="<a href='fact_delete_suite.php?num_fact=$num_fact&action=delete'>Supprimer ces bons de la facture.</a><br/><br/>";
	$msg_validation.="<a href='fact_lister.php'>Ne rien faire et réfléchir un peu</a><br/>";	
	$msg_validation.="<br/><br/>";

	
} else {
	//cette facture ne contient pas de bon
	
	if ($decal_fact == "oui") //l'utilisateur souhaite supprimer une facture alors que d'autre plus récent existe.
	{
		//on supprime la facture
		$sql = "DELETE FROM ${tblpref}facture WHERE num=$num_fact";
		mysql_query($sql) or die("Erreur suppression de la facture <br/>$sql<br/>" . mysql_error());
	
		//on boucle sur chaque facture, on decale la numérotation ET on met à jour les bons
		$sql = "SELECT * FROM ${tblpref}facture WHERE num > $num_fact AND valide=0";
		$result_list_fact = mysql_query($sql) or die("Erreur selection facture à decaller !<br/>$sql<br/>" . mysql_error());
		
		while ($data_facture= mysql_fetch_array($result_list_fact))
		{
			//on met à jour le numéro de facture
			$num_facutre_decal=$data_facture['num'];
			$sql = "UPDATE ${tblpref}facture SET num=$num_facutre_decal-1 WHERE num=$num_facutre_decal";
			mysql_query($sql) or die("Erreur décalage facture <br/>$sql<br/>" . mysql_error());

			//on met à jour les bons qui utilisent cette facture qui vient de changer de numéro 
			$sql = "UPDATE ${tblpref}bon_comm SET num_facture=$num_facutre_decal-1 WHERE num_facture=$num_facutre_decal";
			mysql_query($sql) or die("Erreur décalage facture des bon de commandes <br/>$sql<br/>" . mysql_error());

		}

		//echo "suppr + decalage";
	} else {
		if ($decal_fact == "") //l'utlisateur n'a pas eu la question
		{
			//nombre de facture supérieur à celle devant etre supprimé
			$sql = "SELECT * FROM ${tblpref}facture WHERE num > $num_fact AND valide=0";
			$result_list_fact = mysql_query($sql) or die("Erreur comptage nombre de facture !<br/>$sql<br/>" . mysql_error());
			
			$nb_fact=mysql_num_rows($result_list_fact);
			
			if ($nb_fact==0)
			{
				//on retire tout les bons de cette factures.
				$sql = "UPDATE ${tblpref}bon_comm SET num_facture=0 WHERE num_facture=$num_fact";
				mysql_query($sql) or die("Erreur sql pour retirer les bons <br/>$sql<br/>" . mysql_error());
				
				//on supprime la facture
				$sql = "DELETE FROM ${tblpref}facture WHERE num=$num_fact";
				mysql_query($sql) or die("Erreur suppression de la facture <br/>$sql<br/>" . mysql_error());
			} else {
				if ($nb_fact >= 1)
				{
	
					$list_fact = "";
					while ($tab_fact = mysql_fetch_array($result_list_fact))
					{
						$list_fact .= $tab_fact['num'] . ", ";
					}
					
					$msg_validation="Pour supprimer cette facture il est nécessaire de décrémenter les numéro des factures $list_fact<br/>";
					$msg_validation.="Souhaitez vous décrémenter le numéro de ces factures ? <br/>";
					$msg_validation.="<a href='fact_delete.php?num_fact=$num_fact&decal_fact=oui'>OUI</a> &nbsp; &nbsp; &nbsp; &nbsp; <a href='fact_lister.php'>NON</a>"; 
					$msg_validation.="<br/><br/>";
				}
			}
		
		}
	
	}
	//si $valid_tout == non alors on ne fait rien

} //fin du test si y'a des bons ou pas.

require("fact_lister.php");
?>
